Computer use has become an indispensable part of business and personal life. As the use of computers becomes more prevalent, so to has the need to provide reliable updates to the software associated with computer's operation,
In general, updates for computer software are provided using a number of distribution channels. One increasingly common channel for these distributions is the Internet. For example, when a new or updated version of an application becomes available, it can be provided to an end user quickly via an Internet application that allows the end user to download the material. An end user application connects to a central server to determine if updates for the application are available. The end user of the application can trigger this by selecting a “Check for Updates” option. Alternatively, the application may be configured to automatically check for updates according to a preselected frequency.
However, it is common for a large number of machines that require the same download to apply the same update in a short period of time. A very large number of support requests are common when a new update is provided. This may be the result of normal operation activities such as information regarding how to use the updated application, or as a result of unexpected operation activities, like an updated feature causing malfunctions in a given operating environment. Thus, updates that are electronically distributed have the potential to create an unmanageable spike in support requests that can overwhelm support infrastructure, particularly when the spike is related to unexpected operation activities.
Several approaches have been proposed to prevent end user disruption associated with this problem. Typically these solutions are based on the preference settings provided to the user for when the software update is downloaded and/or installed. For example, different users will inevitably select different times and intervals to check for updates. Additionally, the preferences may differ according to load of the system or simply according to user confirmation.
Ultimately, these methods provide little benefit in reducing the load on support infrastructure because the most common update settings will still result in a support request spike. For example, even though an update may be distributed across several hours of the day based on system load and/or user preferences, at the end of the day a large portion of the systems in the field will be updated, resulting in an unmanageable support request increase.
Further, existing methods do not adequately account for the support spike associated with a particular update. Specifically, existing methods to not allow for corrective measures to be implemented before the update has been released to a significant percentage of the eligible population of end users. Therefore, a need exists for an improved method and system for regulating and distributing software updates, according to the installation, usage, and support feedback.